package org.ktpro.shortlink.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.ktpro.shortlink.project.dao.entity.LinkAccessStatsDO;
import org.ktpro.shortlink.project.dto.req.ShortLinkGroupStatsReqDTO;
import org.ktpro.shortlink.project.dto.req.ShortLinkStatsAccessRecordGroupReqDTO;
import org.ktpro.shortlink.project.dto.req.ShortLinkStatsAccessRecordReqDTO;
import org.ktpro.shortlink.project.dto.req.ShortLinkStatsReqDTO;
import org.ktpro.shortlink.project.dto.resp.ShortLinkStatsAccessRecordRespDTO;
import org.ktpro.shortlink.project.dto.resp.ShortLinkStatsRespDTO;

/**
 * 短链接监控实现层
 *
 * @Author Kris20030907
 * QQ: 3185633428 微信: 18712679036
 */
public interface ShortLinkStatsService extends IService<LinkAccessStatsDO> {
    /**
     * 访问单个短链接指定时间内监控数据
     */
    ShortLinkStatsRespDTO oneShortLinkStats(ShortLinkStatsReqDTO requestParam);

    /**
     * 指定时间内访问记录监控
     */
    IPage<ShortLinkStatsAccessRecordRespDTO> pageLinkStatsAccessRecord(ShortLinkStatsAccessRecordReqDTO requestParam);

    /**
     * 指定时间内分组内所有短链接的访问记录统计
     */
    ShortLinkStatsRespDTO groupShortLinkStats(ShortLinkGroupStatsReqDTO requestParam);

    /**
     * 指定时间内分组访问记录监控
     */
    IPage<ShortLinkStatsAccessRecordRespDTO> pageLinkStatsAccessRecordByGroup(ShortLinkStatsAccessRecordGroupReqDTO requestParam);
}
